home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 30 / Amiga Format AFCD30 (Sep 1998, Issue 114).iso / -seriously_amiga- / sound / player6.1a / source / include / player61.i
Text File  |  1998-06-22  |  5KB  |  226 lines

  1.         IFND PLAYER61_I
  2. PLAYER61_I SET 1
  3.  
  4. **      $Filename: Player61.i $
  5. **      $Release: 6.1A $
  6. **      $Revision: 610.4 $
  7. **      $Date: 98/06/16 $
  8. **
  9. **      The Player 6.1A definitions
  10. **
  11. **      (C) Copyright 1992-94 Jarno Paananen
  12. **      All Rights Reserved
  13. **      Fixed in 1998 by NoName and Platon42
  14. **
  15.  
  16.         IFND EXEC_TYPES_I
  17.         include exec/types.i
  18.         ENDC
  19.  
  20. **************
  21. * The header *
  22. **************
  23.  
  24.   STRUCTURE Player_Header,0
  25. ** Instructions to jump to P61_Init
  26.         ULONG   P61_InitOffset
  27. ** ... to P61_Music (rts, if CIA-Version)
  28.         ULONG   P61_MusicOffset
  29. ** ... to P61_End
  30.         ULONG   P61_EndOffset
  31. ** ... to P61_SetRepeat (if present, otherwise rts)
  32.         ULONG   P61_SetRepeatOffset
  33. ** ... to P61_SetPosition
  34.         ULONG   P61_SetPositionOffset
  35. ** Master volume (used if told to...)
  36.         UWORD   P61_MasterVolume
  37. ** If non-zero, tempo will be used
  38.         UWORD   P61_UseTempo
  39. ** If zero, playing is stopped
  40.         UWORD   P61_PlayFlag
  41. ** Info nybble after command E8
  42.         UWORD   P61_E8_info
  43. ** Vector Base Register VBR passed to the player (default 0)
  44.         APTR    P61_UseVBR
  45. ** Current song position
  46.         UWORD   P61_Position
  47. ** Current pattern
  48.         UWORD   P61_Pattern
  49. ** Current row
  50.         UWORD   P61_Row
  51. ** Offset to channel 0 block from the beginning
  52.         APTR    P61_Cha0Offset
  53. ** Offset to channel 1 block from the beginning
  54.         APTR    P61_Cha1Offset
  55. ** Offset to channel 2 block from the beginning
  56.         APTR    P61_Cha2Offset
  57. ** Offset to channel 3 block from the beginning
  58.         APTR    P61_Cha3Offset
  59.  
  60.         LABEL Player_Header_SIZE
  61.  
  62.  
  63. *********************************************************
  64. ** The structure of the channel blocks (P61_Temp[0-3]) **
  65. *********************************************************
  66.  
  67.   STRUCTURE Channel_Block,0
  68.  
  69. ** Note and the MSB of the sample number
  70.         UBYTE   P61_SN_Note
  71. ** Lower nybble of the sample number and the command
  72.         UBYTE   P61_Command
  73. ** Info byte
  74.         UBYTE   P61_Info
  75. ** Packing info
  76.         UBYTE   P61_Pack
  77. ** Pointer to the sample block of the current sample
  78.         APTR    P61_Sample
  79. ** Current note (offset to the period table)
  80.         UWORD   P61_Note
  81. ** Period
  82.         UWORD   P61_Period
  83. ** Volume (NOT updated in tremolo!)
  84.         UWORD   P61_Volume
  85. ** Current finetune
  86.         UWORD   P61_Fine
  87. ** Sample offset
  88.         UWORD   P61_Offset
  89. ** Last sample Offset
  90.         UWORD   P61_LOffset
  91. ** To period for tone portamento
  92.         UWORD   P61_ToPeriod
  93. ** Speed for tone portamento
  94.         UWORD   P61_TPSpeed
  95. ** Vibrato command
  96.         UBYTE   P61_VibCmd
  97. ** Vibrato position
  98.         UBYTE   P61_VibPos
  99. ** Tremolo command
  100.         UBYTE   P61_TreCmd
  101. ** Tremolo position
  102.         UBYTE   P61_TrePos
  103. ** Retrig note counter
  104.         UWORD   P61_RetrigCount
  105.  
  106. ** Invert loop speed
  107.         UBYTE   P61_Funkspd
  108. ** Invert loop offset
  109.         UBYTE   P61_Funkoff
  110. ** Invert loop offset
  111.         APTR    P61_Wave
  112.  
  113. ** Internal switch to the packing
  114.         UWORD   P61_OnOff
  115. ** Pointer to the current pattern data
  116.         APTR    P61_ChaPos
  117. ** A packing pointer to data elsewhere in the pattern data
  118.         APTR    P61_TempPos
  119. ** Lenght of the temporary positions
  120.         UWORD   P61_TempLen
  121. ** Temp pointers for patternloop
  122.         UWORD   P61_TData
  123.         APTR    P61_TChaPos
  124.         APTR    P61_TTempPos
  125.         UWORD   P61_TTempLen
  126.  
  127. ** Shadow address for fading (updated also in tremolo!)
  128.         UWORD   P61_Shadow
  129.  
  130. ** Bit in DMACON ($DFF096)
  131.         UWORD   P61_DMABit
  132.  
  133.         LABEL Channel_Block_SIZE
  134.  
  135.  
  136.  
  137. ************************************************
  138. ** The structure of the sample block that     **
  139. ** the Player does at the init to P61_Samples **
  140. ************************************************
  141.  
  142.   STRUCTURE Sample_Block,0
  143.  
  144. ** Pointer to the beginning of the sample
  145.         APTR    P61_SampleOffset
  146. ** Lenght of the sample
  147.         UWORD   P61_SampleLength
  148. ** Pointer to the repeat
  149.         APTR    P61_RepeatOffset
  150. ** Lenght of the repeat
  151.         UWORD   P61_RepeatLength
  152. ** Volume of the sample
  153.         UWORD   P61_SampleVolume
  154. ** Finetune (offset to the period table)
  155.         UWORD   P61_FineTune
  156.  
  157.         LABEL Sample_Block_SIZE
  158.  
  159. ************************************************
  160. ** Some internal stuff for the Usecode-system **
  161. ************************************************
  162.  
  163.  
  164. ** if finetune is used
  165. P61_ft = use&1
  166. ** portamento up
  167. P61_pu = use&2
  168. ** portamento down
  169. P61_pd = use&4
  170. ** tone portamento
  171. P61_tp = use&40
  172. ** vibrato
  173. P61_vib = use&80
  174. ** tone portamento and volume slide
  175. P61_tpvs = use&32
  176. ** vibrato and volume slide
  177. P61_vbvs = use&64
  178. ** tremolo
  179. P61_tre = use&$80
  180. ** arpeggio
  181. P61_arp = use&$100
  182. ** sample offset
  183. P61_sof = use&$200
  184. ** volume slide
  185. P61_vs = use&$400
  186. ** position jump
  187. P61_pj = use&$800
  188. ** set volume
  189. P61_vl = use&$1000
  190. ** pattern break
  191. P61_pb = use&$2800
  192. ** set speed
  193. P61_sd = use&$8000
  194.  
  195. ** E-commands
  196. P61_ec = use&$ffff0000
  197.  
  198. ** filter
  199. P61_fi = use&$10000
  200. ** fine slide up
  201. P61_fsu = use&$20000
  202. ** fine slide down
  203. P61_fsd = use&$40000
  204. ** set finetune
  205. P61_sft = use&$200000
  206. ** pattern loop
  207. P61_pl = use&$400000
  208. ** E8 for timing purposes
  209. P61_timing = use&$1000000
  210. ** retrig note
  211. P61_rt = use&$2000000
  212. ** fine volume slide up
  213. P61_fvu = use&$4000000
  214. ** fine volume slide down
  215. P61_fvd = use&$8000000
  216. ** note cut
  217. P61_nc = use&$10000000
  218. ** note delay
  219. P61_nd = use&$20000000
  220. ** pattern delay
  221. P61_pde = use&$40000000
  222. ** invert loop
  223. P61_il = use&$80000000
  224.  
  225.    ENDC ; PLAYER61_I
  226.